home *** CD-ROM | disk | FTP | other *** search
/ Network CD 2 / Network CD - Volume 2.iso / programs / internet / dnet / dshterm1_0.lha / lib / st / dmsg.s < prev    next >
Encoding:
Text File  |  1992-02-04  |  917 b   |  41 lines

  1. ; MORE STUFF TAKEN FROM THE SUP32.LIB
  2.  
  3.         include "dh0:stone/dazsys/xrefs"
  4.  
  5.         OPT        o+            ;optimize
  6.         OPT        l+            ;link
  7.  
  8.         xdef    _waitmsg
  9.  
  10. NT_MESSAGE    equ    5
  11. NT_FREEMSG    equ    6
  12. NT_REPLYMSG    equ    7
  13.  
  14. ; Input a2 the message to on for a return reply
  15. _waitmsg:
  16.         movem.l        A2/A6,-(sp)
  17.         move.l        (4).w,A6
  18.     _wm_test:
  19.         cmp.b        #NT_REPLYMSG,8(A2)                ;has it been replied?
  20.         beq.s        _wm_remove
  21.         cmp.b        #NT_FREEMSG,8(A2)                ;has it been freed?
  22.         beq.s        _wm_freed
  23.         move.l        14(A2),A1                        ;reply port
  24.         move.l        A1,d0                            ;test a1
  25.         beq.s        _wm_test                        ;NULL reply port, busy wait.
  26.         move.b        15(A1),D1                        ;signal bit #
  27.         moveq.l        #1,D0
  28.         asl.l        D1,D0                            ;D0 = signal mask
  29.         jsr            _LVOWait(A6)                    ;wait for signal
  30.         bra.s        _wm_test                        ;loop again
  31.     _wm_remove:
  32.         jsr            _LVODisable(A6)
  33.         move.l        A2,A1
  34.         jsr            _LVORemove(A6)
  35.         jsr            _LVOEnable(A6)
  36.     _wm_freed:
  37.         movem.l        (sp)+,A2/A6                        ; return the message
  38.         move.l        A2,D0
  39.         rts
  40.  
  41.